perm filename CS204.MF[MF,DEK] blob
sn#543106 filedate 1980-11-03 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 "Computer Modern Roman 10 point"
C00004 00003 "The letter C"
C00006 00004 "The letter S"
C00009 00005 "The numeral 2"
C00011 00006 "The numeral 0"
C00012 00007 "The numeral 4"
C00013 00008 end
C00014 ENDMK
C⊗;
"Computer Modern Roman 10 point";
ph=250/36; px=165/36; pe=90/36; pd=70/36;
pb=20/36; po=8/36; ps=20/36; pas=70/36; pa=.5(ph-pd);
pw=12/36; pwi=27/36; pwii=32/36; pwiii=38/36;
pwiv=32/36; pwv=38/36; aspect=1.0; pdel=0; fudge=1.0;
pu=20/36; lcs=1.4; ucs=1.85; sc=0; ls=0;
slant=0; sqrttwo=sqrt 2; fixwidth=0; crisp=1;
phh=ph-pssd; phhh=ph-18/36; pssd=.5po; pdd=pd; varg=0; lowast=0; ligs=1.
input cmbase; call fontbegin;
danger=mi=0;
new mc,lbowl,rbowl,rstem,rv,hic; % quantities used to compute spacing
mc=mi/pu; % converts to relative units when $\\{mi}=1$
lbowl=.3phh.slant+.5pu; % used at left of upper-case bowl
rbowl=.7phh.slant-.5pu; % used at right of upper-case bowl
rstem=phh.slant+(ucs+2sc-1.5)pu; % used at right of tall stem
rv=phh.slant+(ucs+2sc-1)pu; % used at right of tall diagonal
hic=1-.5mi; % used when half the italic correction goes into \\{rtcorr}
"The letter C";
if ucs≠0: call charbegin(`C,13,mc.lbowl,-.5mc(phh.slant-.5pu),
phh,0,hic(phh.slant-.5pu));
else: call charbegin(`C,11,mc.lbowl,-.5mc(phh.slant-.5pu),
phh,0,hic(phh.slant-.5pu));
fi;
hpen;
rt0x1=round(r-u); x5=x1; lft5x3=round u; x2=x4=.5r+u;
top0y2=hh+o; bot0y3=-o; y3=y4; y6=.5[y2,y4];
if ucs=0: x6=r+2u; new aa; x1=aa[x2,x6];
y1=(sqrt(1-aa.aa))[y6,y2];
else: if m<.6hh: y1=good6 2/3hh; else: y1=good6 m;
fi;
x6=x1; x7=x1; top0y7=hh; lft0x8=lft5x1; y8=y1;
w0 ddraw 1..7,8..7; % upper serif
lpen#; w5 draw (6..)1..2{-1,0}; % erase spurious part
fi;
hpen; y5=hh-y1;
w0 draw (6..)1..2{-1,0}; % upper right stroke
call `a darc(2,3,w5); % main stroke
w0 draw 4{1,0}..5(..6). % lower right stroke
"The letter S";
call charbegin(`S,10,0,-.5mc(phh.slant-1.5pu),phh,0,hic(phh.slant-.5pu)+.5mi.pu);
new w99; w99=round .3[w0,w4];
hpen; top0y1=hh+o; bot0y5=-o;
x3=.5r; y3=.52hh; lft99x2=round u; rt99x4=round(r-u);
if ucs=0: x1=x5=x3; x6=x2; x7=x4;
y6=1/3[top0 0,y3]; y7=1/4[bot0 hh,y3];
w0 draw 6{x5-x6,3(y5-y6)}..5{1,0}; % lower left stroke
draw 7{x1-x7,2(y1-y7)}..1{-1,0}; % upper right stroke
else: if w0=w4: x1=x5=x3; x6=x2; x7=x4;
y6=1/3[top0 0,y3]; y7=1/4[bot0 hh,y3];
w0 draw 6{x5-x6,3(y5-y6)}..5{1,0}; % lower left stroke
draw 7{x1-x7,2(y1-y7)}..1{-1,0}; % upper right stroke
x8=x9=x6; y9=y6+ucs.aspect.u+eps; bot0y8=0;
x10=x11=x7; y11=y7-ucs.aspect.u-eps; top0y10=hh;
w0 draw 8..9; % lower serif
draw 10..11; % upper serif
else: x1=x3-.5u; x5=x3+.5u; lft0x6=round u; rt0x7=round(r-1.5u);
y6=good6 1/3hh-1; y7=good6 2/3hh+1;
bot0y8=0; y9=y6; x8=x6; rt4x6=rt0x9;
top0y10=hh; y11=y7; x10=x7; lft4x7=lft0x11;
w0 ddraw 6..8,9..8; % lower serif
ddraw 7..10,11..10; % upper serif
rpen#; w4 draw 6{0,-1}..5{1,0}; % erase excess
lpen#; w4 draw 7{0,1}..1{-1,0}; % ditto
hpen; w0 draw 6{0,-1}..5{1,0}; % lower left stroke
draw 7{0,1}..1{-1,0}; % upper right stroke
fi;
fi;
call `a sdraw(1,2,3,4,5,w99,round(pixels.pwv.aspect+blacker),
-hh/(50u)). % middle stroke
"The numeral 2";
call charbegin(`2,9,0,0,phhh,0,phhh.slant-.5pu);
vpen; rt8x1=round(r-u); lft8x2=round u; bot8y1=0; y1=y2;
w8 draw 1..2; % bar
if ucs≠0: x4=x1; top6y4=top8y1+ucs.u+eps; bot6y3=0;
if w7=w8: x3=x4;
else: x3+.5u=x4; rpen#; w0+.5u draw 3..4; % erase excess
fi;
hpen; w0 draw 3..4; % serif
fi;
cpen; bot3y5=2/3hhh; lft3x5=round u;
w3 draw 5; % bulb
hpen; lft3x5=lft0x6; y5=y6;
rt2x20=rt0x9=round(r-u); lft2x20=lft0x8; x7=.5[x6,x9]-.25u; x11=x2;
x10=x7-.5u; top0y7=hhh+o; y8=y9=.7hhh; bot0y11=0; y10=.4[y11,y9];
lft11x12=lft0x10; y12=y10;
w0 draw 6{0,1}..7{1,0}; % shoulder
lpen#; 2u draw 9{0,-1}..12{2(x10-x9),y10-y9}
..11{x11-x10,4(y11-y10)}; % erase excess
hpen; w0 ddraw 7{1,0}..8{0,-1}..10{2(x10-x9),y10-y9}..11{x11-x10,4(y11-y10)},
7{1,0}..9{0,-1}..12{2(x10-x9),y10-y9}..11{x11-x10,4(y11-y10)}. % stroke
"The numeral 0";
call charbegin(`0,9,0,0,phhh,0,phhh.slant-.5pu);
if fixwidth=0: new save; save=sqrttwo; new sqrttwo;
sqrttwo=sqrt(1.23114413save); % the constant is $2↑{3/10}$
fi;
hpen;
if w2>1.5u: lft2x2=round .75u;
else: x2=good2 1.5u;
fi;
x1=r-x1; % axis of left-right symmetry
x3=r-x2; top0y1=hhh+o; bot0y2=-o; y3=y2;
call `a darc(1,2,w2); call `b darc(1,3,w2); % bowl
if fixwidth=0: new sqrttwo; sqrttwo=save;
fi.
"The numeral 4";
call charbegin(`4,9,0,0,phhh,0,phhh.slant-.5pu);
hpen; x1=x2;
if lcs≠0: if w2>1.5u: rt1x1=round(r-2.25u);
else: x1=good1 6u;
fi;
else: x1=good1 6u;
fi;
top1y1=hhh+o+oo; bot1y2=0;
rt1x1=rt0x3+del; y1=y3; y4=y5=good6 5/6 e; lft0x4=round .5u;
w1 draw 1..2; w0 draw 3..1; % stem
lpen#; w1 draw 3..4; % erase excess at upper left
hpen; w0 draw 3..4; % diagonal
if lcs≠0: rt0x5=rt1x2+1.75u+eps;
call `a serif(2,1,1,-1.75);
call `b serif(2,1,1,1.75); % serif
else: rt0x5=round(r-.75u);
fi;
w0 draw 4..5. % bar
end